home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / util / misc / gpatch.lha / GPatch / GPatch.dok < prev    next >
Text File  |  1997-07-05  |  5KB  |  121 lines

  1.  
  2. GCompare / GPatch 1.6
  3. ---------------------
  4.  
  5. Autor: Ralf Gruner, An der Sense 5a, D-02779 Großschönau
  6.        ralf.gruner@t-online.de
  7.  
  8.  
  9. GCompare ist ein Programm zum Erzeugen von Patch-Dateien für den Vertrieb
  10. von Updates irgendwelcher Programme oder anderer Dateien.
  11.  
  12. GPatch dient dazu, diese Updates auszuführen.
  13.  
  14. Natürlich weiß ich, daß es bereits brauchbare Patch-Generatoren für den
  15. Amiga gibt. Aber leider habe ich nicht SAS-C (das wäre anders, wenn SAS
  16. den Compiler noch verkaufen würde), und das Freeware-Programm, das ich im
  17. Aminet gefunden habe, hat als erstes einen Absturz meines Rechners verursacht
  18. und sich damit sofort disqualifiziert.
  19.  
  20. Deshalb habe ich also einen neuen Patcher geschrieben.
  21.  
  22. Die wesentlichen Eigenschaften sind:
  23. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  24. -Die Patch-Datei kann Patches für eine beliebige Anzahl von Dateien enthalten.
  25.  Dadurch ist es möglich, Updates für mehrere Versionen eines Programms
  26.  zusammen zu vertreiben. Wenn sich die Verzeichnis-Struktur des Produktes
  27.  nicht geändert hat, findet der Patcher selbständig die benötigten Patches,
  28.  ohne daß sich Ihr Skript darum kümmern muß.
  29.  Außerdem können Sie die Patches für verschiedene Dateien in einer einzigen
  30.  Patch-Datei unterbringen.
  31.  
  32. -Das Format der Patch-Datei ist bezüglich der Dateigröße aufwendig optimiert.
  33.  Obwohl ich nicht allzuviele ähnliche Programme kenne, möchte ich behaupten,
  34.  daß GCompare in den meisten Fällen die kürzesten Patchdateien aller
  35.  verfügbarer Patchprogramme erzeugt.
  36.  
  37. -Um zu verhindern, daß beim Anwender beschädigte Dateien ankommen, enthalten
  38.  die Programme eine sehr zuverlässige Fehlererkennung (32-Bit-CRC-Signaturen
  39.  für alle Dateien). Wenn keine Fehlermeldungen auftreten, dann können Sie
  40.  sicher sein, daß die Ergebnisse des Patch-Vorgangs perfekt sind.
  41.  
  42. Benutzung:
  43. ¯¯¯¯¯¯¯¯¯¯
  44. GCompare und GPatch sind Shell-Befehle.
  45.  
  46. Syntax:
  47.  
  48.  GCompare <alte Datei> <neue Datei> <Patchdatei>
  49.  
  50.  GPatch <alte Datei> <Patchdatei> <neue Datei>
  51.  
  52. Wenn GCompare eine bereits bestehende Patchdatei findet, dann hängt es die
  53. Patches an diese Datei an.
  54.  
  55. GPatch wählt die passenden Patches anhand der Dateilänge und der CRC-Signatur
  56. aus.
  57.  
  58. Wenn die Programme keine Fehlermeldungen ausgeben, dann waren die jeweiligen
  59. Vorgänge erfolgreich. Schwerwiegende Fehler werden immer von einem
  60. Return-Code größer als 9 begleitet.
  61.  
  62. GCompare braucht genug Arbeitsspeicher, um die alte, die neue und die
  63. Patchdatei gleichzeitig im Speicher halten zu können.
  64. Wenn GCompare genug Speicher findet (10 mal die Dateigröße der alten Datei),
  65. benutzt es einen schnellen Suchalgorithmus (verkettete Listen), andernfalls
  66. arbeitet es mit linearer Suche.
  67.  
  68. Als Beispiel für die Anwendung der Patchprogramme habe ich Skripts für das
  69. Erzeugen und Anwenden einer Patch-Datei eines fiktiven Programms beigelegt.
  70. In dem Beispiel wird davon ausgegangen, daß verschiedene ältere Versionen
  71. des Programms "MyProgram" in einem Archiv namens "Archive" liegen. Der Patch
  72. für das Programm und eine Anleitung "MyProgram.readme" wird in diesem
  73. Beispiel direkt auf der Programmdiskette "MyProgram" ausgeführt.
  74.  
  75. Diskussion:
  76. ¯¯¯¯¯¯¯¯¯¯¯
  77. Inzwischen habe ich eine ganze Menge Mails mit Kommentaren zur Geschwindigkeit
  78. und der Größe der resultierenden Patchdatei erhalten.
  79. Einige fanden die Patchdatei viel kleiner als die anderer Patcher,
  80. andere wiederum nicht, und allen ist das Patchprogramm nicht schnell genug.
  81.  
  82. Zur Zeit arbeite ich bereits an einem neuen Dateiformat. Bei den meisten Tests
  83. habe ich damit um ca. 15% kürzere Patchdateien erhalten. Aber Sie sollten
  84. wissen, daß es nicht möglich ist, immer das kürzeste Ergebnis zu bekommen,
  85. weil die Größe der Datei vom Abstand der passenden Daten abhängen und dem Weg,
  86. diesen Abstand zu adressieren.
  87. Die nächste Version von GPatch wird drei mögliche Dateiformate zur Verfügung
  88. stellen und einen Optimierer erhalten. Dafür brauche ich aber noch einige Zeit
  89. und habe deshalb diese fehlerkorrigierte Version veröffentlicht.
  90.  
  91. Und zur Geschwindigkeit: Es gibt wirklich keinen Weg, GCompare wesentlich
  92. schneller zu machen. GCompare sucht passende Daten in der gesamten alten Datei
  93. (und nicht nur in einem Relativbereich wie andere Patchprogramme).
  94. Die nächste Version wird zwar eine schnelle Betriebsart haben, aber diese kann
  95. keineswegs die besten Ergebnisse liefern.
  96.  
  97.  
  98. Vertrieb:
  99. ¯¯¯¯¯¯¯¯¯
  100. GCompare und GPatch sind Freeware. Sie können beliebig eingesetzt werden,
  101. einschließlich der Anwendung für kommerzielle Programme.
  102.  
  103. Wenn Sie aber Wert auf zukünftige Updates legen, dann senden Sie mir bitte
  104. eine eMail, damit ich weiß, daß es überhaupt Benutzer der Programme gibt.
  105. Es gibt noch einiges zu optimieren, aber die Zeit dafür nehme ich mir nur,
  106. wenn es auch jemand braucht.
  107. Die Änderungsliste der Programme finden Sie in der englischen Anleitung.
  108.  
  109. Und (wer's lesen will):
  110.  
  111. Rechtliches
  112. ¯¯¯¯¯¯¯¯¯¯¯
  113. Bei der Entwicklung der Software wurde mit allergrößter Sorgfalt vorgegangen.
  114. Trotzdem sind Fehler nicht vollständig ausgeschlossen. Der Autor übernimmt
  115. keine Haftung für Schäden, die direkt oder indirekt auf die Benutzung
  116. seiner Programme zurückzuführen sind.
  117.  
  118.  
  119. Ralf Gruner
  120.  
  121.